/*
 * @lc app=leetcode.cn id=357 lang=cpp
 *
 * [357] 计算各个位数不同的数字个数
 */

// @lc code=start
class Solution {
public:
    int countNumbersWithUniqueDigits(int n) {
        //k位数满足要求的
        //根据乘法原理有9*9*8*...
        //如两位数有 9 * 9 = 81
        //一位数有 9

        int ans = 1; //数字0特判;
        for(int i = 1; i <= n; i++){
            int temp = 9;
            for(int k = 2; k <= i; k++)
                temp *= (9 - k + 2);
            ans += temp;
        }

        return ans;
    }
};
// @lc code=end

